using System;

namespace ApplicationCoopenoix
{
    class Program
    {
        static void Main(string[] args)
        {
            int reponse; //variable
            int reponseLigne;
            string reponseLettre;
            string[,] detailCommande = {   //création tableau
                {"DNC3471", "05/11/2022", "     prête    ", "CN092", "   2   ", "Cerneaux", "47"},
                {"DNC3472", "23/11/2022", "     prête    ", "CN092", "   2   ", "Cerneaux", "53"},
                {"DNC3473", "15/10/2022", "en préparation", "CN094", "   3   ", "Fraîches", "89"},
                {"DNC3474", "15/10/2022", "     prête    ", "CN095", "   2   ", "Cerneaux", "45"},
                {"DNC3475", "01/10/2022", "     prête    ", "CN096", "   1   ", "sèches  ", "61"},
                {"DNC3476", "13/10/2022", "en préparation", "CN097", "   2   ", "Cerneaux", "35"},
                {"DNC3477", "19/11/2022", "  à préparer  ", "CN098", "   2   ", "Cerneaux", "24"},
                {"DNC3478", "04/11/2022", "     prête    ", "CN098", "   3   ", "Fraîches", "93"},
                {"DNC3479", "07/11/2022", "     prête    ", "CN099", "   1   ", "sèches  ", "66"},
                {"DNC3480", "02/10/2022", "     prête    ", "CN100", "   1   ", "sèches  ", "70"}
            };
            for (int i = 0; i < 1000; i++)
            {

                do
                {
                    Console.Write("Que voulez-vous faire?\n[1]Voir la totalité des commandes:\n[2]Voir les commandes à préparer:\n[3]Voir les commandes en préparation:\n[4]Voir les commandes prêtes:\n[5]Modifier l'état des commandes:\n[6]Quitter\nVotre réponse: ");
                    reponse = int.Parse(Console.ReadLine());
                } while (reponse != 1 && reponse != 2 && reponse != 3 && reponse != 4 && reponse != 5 && reponse != 6);
                Console.Write("-----------------------------------------------Affichage des Commandes-----------------------------------------------\n\n\n________________________________________________________________________________________________________________________  N° Commande          Date            État Commande        N° Client    Réf Production     Variété      Quantité kg\n");
                if (reponse == 1)
                {
                    for (int allLines = 0; allLines < 10; allLines++) //Boucle sur les lignes
                    {
                        for (int allColumns = 0; allColumns < 7; allColumns++) //Boucle sur les colonnes de la ligne 
                        {
                            Console.Write("   |" + detailCommande[allLines, allColumns] + "|    ");
                        }
                        Console.WriteLine(""); //affichage tableau saut de lignes
                    }
                }
                if (reponse == 2)
                {
                    for (int readyLines = 0; readyLines < 10; readyLines++)
                    {
                        if (detailCommande[readyLines, 2] == "  à préparer  ")
                        {
                            for (int readyColumns = 0; readyColumns < 7; readyColumns++)
                            {
                                Console.Write("   |" + detailCommande[readyLines, readyColumns] + "|    ");
                            }
                            Console.WriteLine(""); //affichage tableau saut de lignes
                        }
                    }
                }
                if (reponse == 3)
                {
                    for (int tpLines = 0; tpLines < 10; tpLines++)
                    {
                        if (detailCommande[tpLines, 2] == "en préparation")
                        {
                            for (int tpColumns = 0; tpColumns < 7; tpColumns++)
                            {
                                Console.Write("   |" + detailCommande[tpLines, tpColumns] + "|    ");
                            }
                            Console.WriteLine(""); //affichage tableau saut de lignes
                        }
                    }
                }
                if (reponse == 4)
                {
                    for (int ogLines = 0; ogLines < 10; ogLines++)
                    {
                        if (detailCommande[ogLines, 2] == "     prête    ")
                        {
                            for (int ogColumns = 0; ogColumns < 7; ogColumns++)
                            {
                                Console.Write("   |" + detailCommande[ogLines, ogColumns] + "|    ");
                            }
                            Console.WriteLine(""); //affichage tableau saut de lignes
                        }
                    }
                }
                if (reponse == 5)
                {
                    Console.WriteLine("Voulez-vous modifier l'état d'une commande?\n[O]Confirmer:\n[N]Revenir au menu principal:\nVotre réponse: ");
                    reponseLettre = (Console.ReadLine());
                    while (reponseLettre != "O" && reponseLettre != "N") ;
                    if (reponseLettre == "O")
                    {
                        Console.Write("Quelle est le numéro de la commande dont vous souhaitez-modifier l'état?\n[0]Commande n°" + detailCommande[0, 0] + "   |" + detailCommande[0, 2] + "|    " + ":\n[1]Commande n°" + detailCommande[1, 0] + "   |" + detailCommande[1, 2] + "|    " + ":\n[2]Commande n°" + detailCommande[2, 0] + "   |" + detailCommande[2, 2] + "|    " + ":\n[3]Commande n°" + detailCommande[3, 0] + "   |" + detailCommande[3, 2] + "|    " + ":\n[4]Commande n°" + detailCommande[4, 0] + "   |" + detailCommande[4, 2] + "|    " + ":\n[5]Commande n°" + detailCommande[5, 0] + "   |" + detailCommande[5, 2] + "|    " + ":\n[6]Commande n°" + detailCommande[6, 0] + "   |" + detailCommande[6, 2] + "|    " + ":\n[7]Commande n°" + detailCommande[7, 0] + "   |" + detailCommande[7, 2] + "|    " + ":\n[8]Commande n°" + detailCommande[8, 0] + "   |" + detailCommande[8, 2] + "|    " + ":\nVotre réponse: ");
                        reponseLigne = int.Parse(Console.ReadLine());
                        string element = detailCommande[reponseLigne, 2];
                        Console.WriteLine("la commande " + detailCommande[reponseLigne, 0] + " est dans l'état : " + element);
                        do
                        {
                            Console.Write("Choisissez le nouvel état de la commande que vous souhaitez changer:\n[1]À préparer:\n[2]En préparation:\n[3]Prête:\nVotre réponse: ");
                            reponse = int.Parse(Console.ReadLine());
                        } while (reponse != 1 && reponse != 2 && reponse != 3);
                        if (reponse == 1)
                        {

                            detailCommande[reponseLigne, 2] = "  à préparer  ";
                        }
                        else
                        {
                            if (reponse == 2)
                            {

                                detailCommande[reponseLigne, 2] = "en préparation";
                            }
                            else
                            {
                                if (reponse == 3)
                                {

                                    detailCommande[reponseLigne, 2] = "     prête    ";

                                }
                            }
                        }
                    }
                    if (reponseLettre == "N")
                    {
                        continue;
                    }
                }
                if (reponse == 6)
                {
                    i = 1001; //fermeture du programme
                }
            }
        }
    }
}
